package com.vue.admin.util;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * 对引用的PageHelper进行了一次包裹。
 * 主要是因为项目中都是前端传过来的字符串，直接使用PageHelper会有转换上的麻烦。
 */
public class PageHelper2 extends PageHelper {

    /**
     * 增强处理
     * @param pageNum
     * @param pageSize
     * @return
     */
    public static Page startPage(String pageNum, String pageSize) {
        return startPage(Integer.parseInt(pageNum), Integer.parseInt(pageSize) , true);
    }

    /**
     * 默认取值为:paramsMap.get("currentPage"),paramsMap.get("pageSize")
     * @param paramsMap
     * @return
     */
    public static Page startPage(Map paramsMap) throws Exception {
        if(!paramsMap.containsKey("currentPage") || !paramsMap.containsKey("pageSize")){
            throw new Exception("没有找到currentPage或者pageSize");
        }
        return startPage(paramsMap.get("currentPage").toString(),paramsMap.get("pageSize").toString());
    }
    /**
     * 默认取值为:request.getParameter("currentPage"),pageSize = request.getParameter("pageSize")
     * @param request
     * @return
     */
    public static Page startPage(HttpServletRequest request) throws Exception {
        String currentPage = request.getParameter("currentPage"),pageSize = request.getParameter("pageSize");
        if(StringUtil.isEmpty(currentPage) || StringUtil.isEmpty(pageSize) ){
            throw new Exception("没有找到currentPage或者pageSize");
        }
        return startPage(currentPage,pageSize);
    }

}
